/**
 * 用户模块：存储token、 个人信息
 */
// import { getToken } from '@/utils/auth'
import { setToken, getToken, DelToken } from '@/utils/auth'
import { LoginApi, getUserInfoApi } from '@/api/user'

export default {
  namespaced: true,
  // 定义变量
  state: { // 1 用来存储登录成功之后,得到的token
    token: '' || getToken(),
    // 存个人信西
    userInfo: {}

  },

  // 修改 变量
  mutations: {
    // 2 更新修改token 的mutation函数
    /**
     *
     * @param {*} stata 所有的变量
     * @param {*} newToken 调用updateToken方法 传入的参数
     */
    updateToken (stata, newToken) {
      // 内存存储
      stata.token = newToken
      // 本地存储
      setToken(newToken)
    },
    delToken (stata) {
      stata.token = ''
      DelToken()
    },
    // 存储个人信息
    setUserInfo (state, payload) {
      state.userInfo = payload
    }

  },
  // 发请求{异步}
  actions: {
    /**
 *  登录
 * @param {*} ctx   上下文  中有commit方法
 * @param {*} payload   页面调用getTokenAction  传入的参数
 */
    async getTokenAction ({ commit }, payload) {
      const { data } = await LoginApi(payload)
      console.log('token', data)
      if (data.code === 0) {
        commit('updateToken', data.token)
      }
      // 组件返回数据
      return data
    },
    // 存储信息到vxue中
    async getUserAction ({ commit }) {
      const { data } = await getUserInfoApi()
      console.log('用户信息', data)
      commit('setUserInfo', data.data)
    }
  }
}
